/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ifpe.controller;

import ifpe.dao.DaoFactory;
import ifpe.dao.UsuarioDao;
import ifpe.entities.Grupo;
import ifpe.entities.Usuario;
import ifpe.transaction.Transaction;
import ifpe.transaction.TransactionManagerProxy;

/**
 *
 * @author Sostenes
 */
@Transaction(readOnly = true)
public class UsuarioControllerImpl implements UsuarioController {

    private UsuarioDao usuarioDao;
    //private GrupoDao grupoDao;

    public UsuarioControllerImpl() {
        usuarioDao = DaoFactory.getInstance().getUsuarioDao();
        //grupoDao = DaoFactory.getInstance().getGrupoDao();
    }

    @Override
    @Transaction(readOnly = false)
    public void createUsuario(Usuario usuario) {
        if (usuarioDao.exists(usuario)) {
            throw new IllegalArgumentException(
                    "Já existe um usuário cadastrado com este login");
        }
        usuarioDao.insert(usuario);
    }

    @Override
    public Usuario getUsuario(long id) {
        return usuarioDao.get(id);
    }

    @Override
    public Usuario getUsuario(String login, String senha) {
        return usuarioDao.get(login, senha);
    }

    @Override
    @Transaction(readOnly = false)
    public void updateUsuario(Usuario usuario) {
        usuarioDao.update(usuario);
    }
}
